﻿@page "/todos"
@inject ITodoService todoService

<h1>Todos</h1>
<p>Be smart - todo!</p>

<TodoList OnAddingTodo="AddingTodo" Items="_todos">
    <ItemsTemplate>
        <TodoItem Todo=@context OnCompleted="CompleteTodo" />
    </ItemsTemplate>
</TodoList>

@code {
    IReadOnlyList<Todo> _todos = Array.Empty<Todo>();

    protected override async Task OnInitializedAsync()
    {
        _todos = await todoService.GetAll();
    }

    private async Task AddingTodo(Todo todo)
    {
        todoService.Add(todo);
        _todos = await todoService.GetAll();
    }
    
    private async Task CompleteTodo(int todoId)
    {
        todoService.Complete(todoId);
        _todos = await todoService.GetAll();
    }
}